home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-11 / gl101.zip / DEMO.PRG < prev    next >
Text File  |  1991-07-18  |  10KB  |  166 lines

  1. *.............................................................................
  2. *
  3. *   Program Name: DEMO.PRG          Copyright: Global Technologies Corporation
  4. *   Date Created: 06/05/90           Language: Clipper 5.0, Graphics Language
  5. *   Time Created: 11:27:44             Author: Bill French
  6. *
  7. *   This demo program contains not a single dGE function call.  Only english
  8. *   like statements of the Graphics Language for Clipper 5.0.  Most of it is
  9. *   commented and much of it is self explanatory.  The menu it produces is
  10. *   quite impressive considering it is less than 20 lines of code.  The entire
  11. *   program including charts is only about 100 lines.
  12. *
  13. *   Compiling is accomplished in ordinary fashion but does require the Graphics
  14. *   Language header file GLLIBR.CH to be present in the compilation directory
  15. *   or the INCLUDE directory.  Additionally, you must link in GLLIBR.LIB in
  16. *   addition to the standard dGE screen drivers and library.
  17. *
  18. *   At run-time, this program requires the dGE character sets listed below.
  19. *   Failure to make these character sets available at run-time will cause dis-
  20. *   play problems.
  21. *
  22. *     DGE0EGA.CHR   RMN1628.STX
  23. *     DGE1EGA.CHR   RMN2828.STX
  24. *     DGE1108.STX   RMN3828.STX
  25. *     DGE1609.STX
  26. *.............................................................................
  27.  
  28. #include "gllibr.ch"                             // include the gl language definitions
  29.  
  30. local choice_
  31.  
  32. do MainMenu                                      // display the main menu
  33.  
  34. do while .t.                                     // main menu loop
  35.    set character set to system small             // change the character set back to system small
  36.    wait event to choice_                         // wait for a mouse press in a region
  37.    do case                                       // evaluate the mouse click
  38.    case choice_ == "one"                         // if region 1 was clicked
  39.       clear graphics screen                      // clear the graphics screen
  40.       set character set to system small          // change the character set back to system small
  41.       setcolor("gr+/b")
  42.       draw bar chart at 16,14 using demo.dbf ;   // display a bar chart
  43.          plot div_income ;                       // select the field to plot
  44.          label div_code ;                        // specify the label
  45.          filter recno()<=16 ;                    // set the filter
  46.          3d ;                                    // display in 3d mode
  47.          height 12 ;
  48.          width 60 ;
  49.          division 5000 ;
  50.          dotted ;
  51.          color bright cyan ;
  52.          box
  53.       setcolor("w+/b")                           // set the menu color (std Clipper 5.0 function)
  54.       draw "Sales" at 06,02 using system large vertical
  55.       draw "Division Sales" at 21,17 using roman 3828
  56.       do pause                                   // prompt for a mouse click
  57.    case choice_ == "two"                         // if region 2 was clicked
  58.       clear graphics screen                      // clear the graphics screen
  59.       set character set to system small          // change the character set back to system small
  60.       draw pie chart at 09,40 using demo.dbf ;   // draw a pie chart
  61.          plot div_income ;                       // select the field to plot
  62.          label division ;                        // select the lable
  63.          radius 12 ;
  64.          pattern ;                               // select alternating patterns
  65.          explode 3 ;                             // select the first slice to explode
  66.          filter year = "1990" ;                  // only plot 1990 data
  67.          color                                   // select alternating colors
  68.       setcolor("w+/b")                           // set the menu color (std Clipper 5.0 function)
  69.       draw "Divisional Sales" at 20,14 using roman 3828
  70.       do pause                                   // prompt for a mouse click
  71.    case choice_ == "thr"                         // if region 3 was clicked
  72.       set color to "r+/b"                        // set the color to bright red on blue
  73.       draw box from 03.5,16 to 16,75             // draw graphical box
  74.       set character set to system 1108           // establish system 1108 character set
  75.       set color to "w+/b"                        // set the color to bright white on blue
  76.       draw "*** Demo Source Code ***" at 04.75,18
  77.       draw "DRAW PIE CHART at 08,46 using DEMO.DBF ;   // select dbf" at 06.0,18
  78.       draw "   PLOT div_income ;               // select plot field" at 07.25,18
  79.       draw "   LABEL division ;                // select label field" at 08.50,18
  80.       draw "   PATTERN ;                       // alternate patterns" at 09.75,18
  81.       draw "   RADIUS 12 ;                     // specify size of pie" at 11.00,18
  82.       draw "   EXPLODE 3 ;                     // explode third slice" at 12.25,18
  83.       draw "   FILTER year='1990' ;            // set filter" at 13.50,18
  84.       draw "   COLOR                           // alternate colors" at 14.75,18
  85.       do pause                                   // prompt for a mouse click
  86.    case choice_ == "fou"                         // if region 4 was clicked
  87.       clear graphics screen                      // clear the screen
  88.       draw " This Picture May Be" at 03,02.5 using roman 2828
  89.       draw "Worth A Thousand Words" at 05,02
  90.       set character set to system small          // change the character set back to system small
  91.       set color to "gr+/b"
  92.       draw box from 05.25,20 to 14.25,59
  93.       set color to "w+/b"
  94.       draw pie chart at 09,40 using demo.dbf ;   // draw a pie chart
  95.          plot div_income ;                       // select the field to plot
  96.          label div_code ;                        // select the lable
  97.          pattern ;                               // select alternatine patterns
  98.          radius 6 ;                              // select the radius (in chrs)
  99.          explode 3 ;                             // select the first slice to explode
  100.          filter year="1990" ;                    // only plot 1990 data
  101.          color                                   // select alternating colors
  102.       setcolor("w+/b")                           // set the menu color (std Clipper 5.0 function)
  103.       draw "Divisional Sales" at 14,31 using system std
  104.       draw "But It Only Took 16" at 17,06 using roman 2828
  105.       draw "     To Create     " at 19,06
  106.       draw box from 19.50,03.25 to 23,75
  107.       draw "DRAW PIE CHART at 08,46 using DEMO.DBF PLOT div_income PATTERN" at 21,04.5 using system small
  108.       draw "   LABEL division RADIUS 12 EXPLODE 3 FILTER year='1990' COLOR" at 22,04.5
  109.       define event "pause" from 00,00 to 24,79 ;
  110.          activate
  111.       wait event "pause" release                 // wait for a mouse prees in region 7 only
  112.       clear graphics screen                      // clear the screen for the next frame
  113.       draw "The Graphics Language" at 05,03 using roman 3828
  114.       draw "For" at 07,35 using roman 2828
  115.       draw "Clipper 5.0" at 09,20
  116.       draw "by" at 15,36 using roman 1628
  117.       draw "Global Technologies" at 18,07 using roman 2828
  118.       draw "Corporation" at 20,22
  119.       define event "pause" from 00,00 to 24,79 ;
  120.          activate
  121.       wait event "pause" release                 // wait for a mouse pree in region 7 only
  122.       do MainMenu                                // redisplay the main menu
  123.    case choice_ == "fiv"                         // if region 6 was clicked
  124.       exit                                       // exit from the menu loop
  125.    endcase
  126. enddo                                            // do while .t.
  127.  
  128. set mouse off                                    // hide the mouse
  129. set graphics off                                 // set to text mode
  130. quit                                             // exit to dos
  131.  
  132. procedure MainMenu
  133.    clear screen                                  // clear the text screen (std Clipper 5.0 command)
  134.    set graphics on                               // graphics mode
  135.    set mouse on                                  // turn on the mouse
  136.    set palette background to bright blue         // change the background color
  137.    clear graphics screen                         // clear the graphics screen
  138.    set event shadow to "n+/b"                    // set event object shadow color
  139.    setcolor("w+/b")                              // set the menu color (std Clipper 5.0 function)
  140.    draw "The Graphics Language" at 02,40 using system 1609 center
  141.    set icon to demo.ico                          // load the sample supericon file
  142.    set character set to system small             // establish the small system character
  143.    define event "one" at 03,06 using super icon 2 shadow activate
  144.    define event "two" at 09,06 using super icon 4 shadow activate
  145.    define event "thr" at 15,06 using super icon 6 shadow activate
  146.    define event "fou" at 21,06 using super icon 7 shadow activate
  147.    define event "fiv" at 21,72 using super icon 1 shadow activate
  148. return
  149.  
  150. procedure pause
  151.    set character set to system large             // change the character set back to system small
  152.    draw box from 21.5,26 to 23,56 bevel
  153.    @ 22.9,27.25 draw "Click here to continue..."
  154.    define event "pause" from 21.5,26 to 23,56 ;
  155.       activate
  156.    wait event "pause" release                    // wait for a mouse pree in region 7 only
  157.    clear graphics screen                         // clear the previous image
  158.    setcolor("w+/b")                              // set the menu color (std Clipper 5.0 function)
  159.    draw "The Graphics Language" at 02,30 using system 1609
  160.    activate event "one"
  161.    activate event "two"
  162.    activate event "thr"
  163.    activate event "fou"
  164.    activate event "fiv"
  165. return
  166.